export interface PaginateResult<T> {
  docs: T[]
  totalDocs: number
  limit: number
  page?: number
  totalPages: number
  nextPage?: number | null
  prevPage?: number | null
  pagingCounter: number
  hasPrevPage: boolean
  hasNextPage: boolean
  meta?: any
  [customLabel: string]: T[] | number | boolean | null | undefined
}

export interface Response<T> {
  success: boolean
  code: string
  message: string
  data: T
}

export type GResponse<T> = Promise<Response<T>>

export enum LOAD_STATUS {
  normal = 1,
  loading,
  noData,
  noMore,
}
